#include <font_manager.h>

#include <string.h>



static PFontOpr g_ptFonts=NULL;
static PFontOpr g_ptDefaultFontOpr=NULL;

void RegisterFont(PFontOpr ptFonts)//头插法将多个字库链接起来
{
	ptFonts->ptNext=g_ptFonts;
	g_ptFonts=ptFonts;
}
void FontsRegister(void)
{
	extern void FreetypeRegister(void);
	FreetypeRegister();
}

int SelectAndInitFont(char *aFontOprName,char *aFontFileName)//选择字库
{
	PFontOpr tmp=g_ptFonts;
	while(tmp)
	{
		if(strcmp(tmp->name,aFontOprName)==0)
		{
			break;
		}
		tmp=tmp->ptNext;
	}
	if(!tmp)//最后如果不存在（即字库名字在链表中没有）
	{
		return -1;
	}
	g_ptDefaultFontOpr=tmp;
	return tmp->FontInit(aFontFileName);//如果存在的话就调用这个初始化函数去初始化
}

//设置字体大小
int SetFontSize(int iFontSize)
{
	return g_ptDefaultFontOpr->SetFontSize(iFontSize);
}

//获得位图
int GetFontBitMap(unsigned char dwCode,PFontBitMap ptFontBitMap)
{
	return g_ptDefaultFontOpr->GetFontBitMap(dwCode,ptFontBitMap);
}

int GetStringRegionCar(char *str, PRegionCartesian ptRegionCar)
{
	return g_ptDefaultFontOpr->GetStringRegionCar(str, ptRegionCar);
}

